﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;

namespace SERIX
{
    /*
     * Autor      : IT-Developer1
     * Data       : 02/04/2010 11:03:48
     * Descricao  : 
     * Alteracoes : 
     * 
     */
    public partial class ProgramasManut : Seguranca
    {
        string _operacao;
        string _idt;
        string _tpoProg;

        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            string login = UsuAut.Login;
            _operacao = Request["OP"];
            if (!String.IsNullOrEmpty(Request["idt"]))
            {
                _idt = Server.UrlDecode(Criptografia.Descriptografar(Request["idt"]));
            }
            if (!Page.IsPostBack)
            {
                switch (_operacao)
                {
                    case "R":
                        {
                            lblTitulo.Text = "Detalhes do Programa";
                            Cancelar_Button.Visible = false;
                            CProgramas dao = CProgramas.PesquisaporCodigo(_idt, login);
                            CarregaDados(dao);
                            DesabilitaControles();
                            break;
                        }
                    case "U":
                        {
                            lblTitulo.Text = "Alteração do Programa";
                            CProgramas dao = CProgramas.PesquisaporCodigo(_idt, login);
                            CarregaDados(dao);
                            break;

                        }
                    case "I":
                        {
                            lblTitulo.Text = "Inserção do Programa";
                            break;
                        }
                    case "D":
                        {
                            lblTitulo.Text = "Exclusão do Programa";
                            CProgramas dao = CProgramas.PesquisaporCodigo(_idt, login);
                            CarregaDados(dao);
                            DesabilitaControles();
                            break;
                        }
                    default: break;
                }
            }
        }

        private void CarregaDados(CProgramas dao)
        {
            txtNomePrograma.Text = dao.Nom_prog;
            txtDataInicio.Text = dao.Dat_ini;
            txtDataTermino.Text = dao.Dat_ter;
            _tpoProg = dao.Idt_tpo_prog;
        }

        protected void DesabilitaControles()
        {
            BiblioSERIX.DesabilitaControle(txtNomePrograma);
            BiblioSERIX.DesabilitaControle(txtDataInicio);
            BiblioSERIX.DesabilitaControle(txtDataTermino);
            BiblioSERIX.DesabilitaControle(ddlTipoPrograma);
        }

        protected void Ok_Button_Click(object sender, EventArgs e)
        {
            try
            {
                string login = UsuAut.Login;
                CProgramas dao = SetDados(login);
                switch (_operacao)
                {
                    case "I":
                        {
                            dao.Inserir(login);
                            break;
                        }
                    case "U":
                        {
                            dao.Alterar(login);
                            break;
                        }
                    case "D":
                        {
                            dao.Excluir(login);
                            break;
                        }
                    default: break;
                }
                Response.Redirect("Programas.aspx");
            }
            catch (Exception ex)
            {
                lblErro.Text = "*Erro: " + ex.Message;
                lblErro.Visible = true;
            }
        }

        private CProgramas SetDados(string login)
        {
            if (String.IsNullOrEmpty(_idt) && _operacao[0].Equals('I'))
            {
                _idt = CProgramas.ObterNovoIdt(login).ToString();
            }
            //escondendo os outros campos, por solicitação do usuário não seram mais usados
            CProgramas dao = new CProgramas(_idt, "1", DateTime.Now.ToString("dd/MM/yyyy"), txtNomePrograma.Text, null);
            //CProgramas dao = new CProgramas(_idt, ddlTipoPrograma.SelectedValue, txtDataInicio.Text, txtNomePrograma.Text, txtDataTermino.Text);
            return dao;
        }

        protected void Cancelar_Button_Click(object sender, EventArgs e)
        {
            Response.Redirect("Programas.aspx");
        }

        protected void ddlTipoPrograma_PreRender(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlTipoPrograma.Items.Insert(0, new ListItem());
                ddlTipoPrograma.SelectedValue = _tpoProg;
            }
        }
    }
}
